1. Field of the Invention
This invention relates to updating the firmware of a computing system and more particularly updating the firmware of a computing system having one or more large high-performance servers.
2. Description of Background
A computing system can include a simple personal computer, a network of simple computers, or one or even a network of large computers that include one or more central electronic systems (CEC). Most computing environments today include several types of memory for storing and manipulating data. The most common are ROM, RAM and PROM memories. Firmware is a computer program that is embedded in a hardware device, for example a microcontroller. Firmware is the code that runs in the ROM and RAM memory of that microcontroller. In addition, firmware can be provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user.
Firmware has evolved to mean the programmable content of a hardware device, which can consist of machine language instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device. Traditionally, firmware has been stored in ROM, however cost and performance requirements have driven component vendors to adopt various replacements, including non-volatile media such as PROMa and Flash, or SRAM solutions. Firmware can now be updated electronically or by replacing a storage medium. In some respects firmware is as much a software component of a working system as the operating system. However, unlike most modern operating systems, firmware rarely has a well evolved mechanism for updating itself to fix bugs and addressing functionality issues that are detected after the unit is shipped. Updating firmware can result in serious reliability issues for the system environment. If the operation is done incorrectly or finishes improperly, it renders a device or even an environment unusable.
Therefore there is a need for a method and associated assembly that can provide highly reliable, flash updates of the firmware in a computer environment, especially one that includes microcontrollers and high performance servers.